function val=linear_spline(a, x, y)
  % @param
  %   a = vectorul punctelor in care vreau sa calculez valorile functiei
  %   x = vectorul absciselor punctelor din suportul de interpolare
  %   y = vectorul ordonatelor punctelor din suportul de interpolare
  % @return
  %   val = vectorul ce contine valorile functiei in punctele din a
  [m n] = size(x);
  val = zeros(1, length(a));
  A = diff(y(1:n));
  B = zeros(1,n-1);
  for i=1:n-1
    B(i) = -(x(i) * y(i+1) - x(i+1) * y(i));
  endfor
  aux = diff(x(1:n));
  A = A ./ aux;
  B = B ./ aux;

  %valoarea in a
  for i=1:length(a)
    aux = abs(x(2:n) - a(i));
    %ind = indicele minimului
    [xmin ind] = min(aux);
    if a(i) > x(ind+1) && a(i) < x(ind+2)
      ind = ind + 1;
    endif
    val(i) = B(ind) + A(ind) * a(i);
  endfor
endfunction
